import axios from 'axios' // 导出一个axios的实例
import store from '@/store'
import router from '@/router'
import { Message } from 'element-ui'
const timeout = 36000 // token有效时间  s
function isCheckOutTime() {
  // 请求时的时间
  const time2 = Date.now()
  // 请求时间减去登陆时间
  const timer = (time2 - store.getters.time) / 1000
  return timer > timeout // 返回布尔值  如果是TRUE 代表超时
}
const request = axios.create({
  // 创建一个axios的实例
  baseURL: '/api',
  timeout: 5000
})
// 请求拦截器
request.interceptors.request.use(
  (config) => {
    const token = store.getters.token
    if (token) {
      // console.log(isCheckOutTime());
      // 如果超时了，清除token，并重新登录
      if (isCheckOutTime()) {
        Message.error('token超时啦 请重新登陆')
        store.dispatch('user/logoutAction')
        router.push('/login')
        return
      }
    }
    config.headers.Authorization = token
    return config
  },
  (err) => {
    return Promise.reject(err)
  }
)
// 响应拦截器
request.interceptors.response.use(
  (response) => {
    return response.data
    // const {success,msg} = response.data
    // console.log('11111',response.data);
    /* if(success){
      return response.data
    }else{
      Message.error(msg)
      return Promise.reject(new Error(msg))
    } */
  },
  (err) => {
    if (err.response.status === 401) {
      Message.error('token失效 请重新登陆')
      store.dispatch('user/logoutAction')
      router.push('/login')
      console.log(err.response, '567898765434567')
    } else {
      Message.error(err.response.data.message)
    }
  }
)

export default request // 导出axios实例
